from sqlalchemy import create_engine, Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
# 引擎连接操作数据库
from sqlalchemy.orm import relationship

engine = create_engine("mysql+pymysql://root:123456@localhost:3307/test?charset=utf8",
                       max_overflow=2,  # 超过连接池大小外最多创建的数量,
                       pool_size=5,  # 连接池的大小
                       pool_timeout=30,  # 池中没有线程最多等待的时间
                       pool_recycle=-1  # 多久之后对线程中的线程进行一次连接的回收(重置)
                       )
# 工厂函数,为声明性类定义构造基类,其子类能自动与一个表关联
Base = declarative_base()
# 定义表
class Student(Base):
    __tablename__ = "student"  # 表名
    id = Column(String(32), primary_key=True)
    name = Column(String(50))
    age = Column(Integer, default=22)
class Employee(Base):
    __tablename__ = "employee"
    id = Column(Integer, autoincrement=True, primary_key=True)
    eid = Column(Integer, unique=True, nullable=False, default=0)
    sid = Column(String(32))
    # ForeignKey('student.id')  外键
    desc = Column(String(32), index=True)


# 会找到Base所有的子类去创建表或者删除表
Base.metadata.create_all(engine)
#Base.metadata.drop_all(engine)   #删除表
